package com.my12306.train.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.my12306.common.model.vo.PageVo;
import com.my12306.common.util.PageUtils;
import com.my12306.common.util.response.ResponseData;
import com.my12306.train.model.entity.TicketEntity;
import com.my12306.train.model.vo.TicketVo;
import com.my12306.train.model.vo.TrainNumberVo;

import java.util.List;

/**
 * 售票表
 *
 * @author ËÕÄÁÏ¦
 * @email
 * @date 2020-07-24 20:58:07
 */
public interface TicketService extends IService<TicketEntity> {
    /**
     * 分页查询车票
     *
     * @param pageVo
     * @return
     */
    PageUtils queryTicketPage(PageVo pageVo);

    /**
     * 分页查询的总数
     *
     * @param pageVo
     * @param logicDelete
     * @return
     */
    Integer queryTicketCount(PageVo pageVo, int logicDelete);

    /**
     * 批量删除车票
     *
     * @param ticketIds
     * @return
     */
    ResponseData deleteTicketBatchByIds(List<Long> ticketIds);

    /**
     * 获取检索页需要的 参数
     * @return
     */
    ResponseData queryTrainNumberParameter();

    /**
     * 检索出符合条件的的车次，并且是有票可售的
     * @return
     */
    ResponseData queryTrainNumber(TrainNumberVo trainNumberVo);

    /**
     * 查询各种类型的票种的席位是否有可售的
     * @param ticketVo
     * @return
     */
    ResponseData queryTicket(TicketVo ticketVo);

    /**
     * 查询可用的票据
     * @param fromId
     * @param trainCode
     * @return
     */
    List<String> getStationByStation(Long fromId,String trainCode);
}

